/*
THIS FILE IS PART OF THE >>ADRENALIN-3D-GRAFIC-ENGINE<<
for latest info visit http://www.creative-games.de

Copyright (c) 2008-2009 by Marco Schneider

This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License (LGPL) as
published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
License for more details.

*/

#ifndef __ADL_CAMERA_H__
#define __ADL_CAMERA_H__

#pragma once

#include "../include/Defines.h"
#include "../Adrenalin.h"
#include "../include/Math/Math.h"
#include "../interfaces/ICamera.h"
#include "../interfaces/INamedInstance.h"

namespace Adrenalin 
{
	class ADRENALIN_API Camera : public ICamera
	{
	private:
		Math::Vector3<float>	_eye; 
		Math::Vector3<float>	_at; 
		Math::Vector3<float>	_up; 
		float					_near; 
		float					_far;
	public:
		Camera(Adrenalin::stringw name);
		void Set(Math::Vector3<float>& eye, Math::Vector3<float>& at, Math::Vector3<float>& up, float near, float far);
		void Release();

		stringw& Name();
	};
}

#endif
